/* IF2030 - Algorirma dan Struktur Data */
/* Kelas/Kelompok/Tahun  : 03/09/2011 */
/* Tanggal   : 2 Desember 2011 */
/* File      : mesinkarstr.c */
/* Deskripsi : Mesin Karakter pembaca karakter dari string */

#include "../mesinkarstr/mesinkarstr.h"

char CC;
boolean EOP;
static line pita;
static int pos; /* posisi karakter terbaca */

void START(line str)
/* Mesin siap dioperasikan. str merupakan pita yang dibaca.
Karakter pertama yang ada pada pita posisinya adalah pada jendela.
I.S. : str terdefinisi
F.S. : CC adalah karakter pertama pada pita
Jika CC != MARK maka EOP akan padam (false)
Jika CC = MARK maka EOP akan menyala (true) */
{
    /* Algoritma */
    pos = 0;
    strcopy(pita, str);
    ADV();
}

void ADV()
/* Pita dimajukan satu karakter.
I.S. : Karakter pada jendela = CC, CC != MARK
F.S. : CC adalah karakter berikutnya dari CC yang lama,
CC mungkin = MARK
Jika CC = MARK maka EOP akan menyala (true) */
{
    /* Algoritma */
    CC = pita[pos];
    pos++;
    EOP = (CC == MARK);
}
